1. Field of the Invention
The invention relates to communicating with devices on digital computer system buses, and more particularly, to a method of and circuitry for selecting a device on a SCSI bus without that device having an assigned SCSI address.
2. Description of the Related Art
Digital computer systems are becoming more powerful, flexible, and distributed with each passing day. These advances are due to many factors, including improvements in software capabilities, in computer system architectures, and in semiconductor devices such as microprocessor and memory chips.
One architecture that has often improved the flexibility and performance of small systems is the Small Computer System Interface (SCSI) standard. The SCSI standard is a specification developed by the American National Standards Institute (ANSI) defining mechanical, electrical, and functional requirements for attaching small computers to each other and to intelligent peripherals such as hard disks, flexible disks, magnetic tape drives, printers, optical disks, and scanners. The current issued specification is SCSI-2, with SCSI-3 under development. The SCSI-2 specification, either the final or most recently published draft, is incorporated into this document by reference.
One advantage of SCSI is that numerous devices can be connected on a single bus and accessed through a single controller, with only software device drivers varying between the devices. This facilitates the connection of new devices to the bus. By allowing the combination of a variety of devices on a single standardized bus, SCSI provides a very flexible system. A second advantage of SCSI is its high performance. A system implementing SCSI can quickly and efficiently communicate with very high density storage devices.
Because of SCSI""s high performance capabilities and its expanding popularity, chip designers have developed specialized integrated circuits to implement many parts of the SCSI standard. Some of these chips handle many of the low level complexities of interfacing the physical portion of the SCSI standard, which is the physical connection between the controller and the various devices. One example of such a chip is the 53C710 SCSI I/O Processor from NCR Corporation (NCR) of Dayton, Ohio. This device would typically be implemented on a circuit board for use as a SCSI controller card. Such a controller card typically would physically run on a host computer system bus, such as the EISA bus, and would also provide the physical connectors for connecting to the SCSI bus. The controller chip would then interface between the host system bus and the SCSI bus.
One problem with the SCSI standard is that it only provides for eight SCSI addresses (0-7). This can be a limitation in systems that require a large amount of mass storage or require a variety of SCSI devices, as every additional SCSI address remaining available can become important. The number of SCSI addresses available is not readily expandable because of the non-multiplexed way in which devices are identified. During the selection phase of the SCSI communication cycle, a device is identified by the SCSI ID that corresponds to its SCSI address. This is done by asserting one of eight lines on the SCSI data bus DB less than 7 . . . 0 greater than *. As there are only eight lines for addressing on the SCSI bus, that limits a device""s SCSI ID to one of those eight lines. Thus, the SCSI bus only provides for eight SCSI devices, with the controller always being one device.
The SCSI communications architecture includes eight distinct phases: a BUS FREE phase, an ARBITRATION phase, a SELECTION phase, a RESELECTION phase, a COMMAND phase, a DATA phase, a STATUS phase, and a MESSAGE phase. Of importance is the SELECTION phase, which allows an initiator, which has won the previous arbitration phase and which is generally a SCSI controller device, to select a target device for initiating some target function (e.g., a READ or WRITE command). At the start of the SELECTION phase, the SCSI device that won the bus during the previous ARBITRATION phase is asserting the signals BSY* and SEL* true (low), and that device also has delayed at least one bus clear delay plus a bus settle delay before ending the ARBITRATION phase. The initiator then sets the data bus DB less than 7 . . . 0 greater than * to a value equal to the OR of its SCSI ID bit and the targets SCSI ID bit, and then it asserts the ATN* signal. The initiator then waits at least two deskew delays and then releases the BSY* signal.
At this point, the target determines that it is selected when the SEL* signal and the target""s SCSI ID bit are true and the BSY* and I/O* signal are false for at least one bus settle delay. The I/O* signal is used to differentiate between SELECTION and RESELECTION, which is not important here. The selected target then asserts the BSY* signal to complete the selection process. The initiator and the target can then engage in the transfer of information in the CMD, DATA, STATUS and MESSAGE phases.
It would be desirable if a SCSI device could select and communicate on the SCSI bus with another SCSI device that has not been assigned a SCSI address. This would allow communications, for example, with xe2x80x9chousekeepingxe2x80x9d devices that perform tasks that are too simple to justify the assigning of an individual SCSI address. Further, such a xe2x80x9cphantomxe2x80x9d SCSI device could also be used for more complex tasks, and could in effect provide an extra SCSI address.
A xe2x80x9cphantomxe2x80x9d SCSI device built according to the invention, or used according to the method of the invention, resides on the SCSI bus and communicates with a SCSI initiator without that phantom device being assigned a SCSI address (or corresponding SCSI ID). Normally, during the SELECTION phase, a SCSI-2 initiator ORs its own SCSI ID with its target""s SCSI ID, thus asserting two bits on the SCSI data bus DB less than 7 . . . 0 greater than *. According to the invention, however, the driver software on the host computer directs the SCSI initiator device to select itself as its target. The hardware on a SCSI initiator ORs its own SCSI ID with its own SCSI ID, as the initiator is both initiator and target. Thus, the SCSI initiator only asserts one bit of the eight bit SCSI data bus DB less than 7 . . . 0 greater than *. This does not happen in normal SCSI operation.
A device built according to the invention determines when a SELECTION phase is under way and then determines if only one bit has been asserted on the SCSI data bus DB less than 7 . . . 0 greater than *. In a normal SCSI-2 operation, two bits on the SCSI data bus would be asserted, so when the device according to the invention detects one data bit, no matter what that data bit is, it knows that it is the target of the SCSI operation. So, no matter what the SCSI ID number of the SCSI controller, when it performs a SELECTION phase with only its own SCSI ID bit set, the phantom SCSI device according to the invention deems that it has been selected. The phantom SCSI device according to the invention then responds to the initiator by asserting the BSY* signal true (low), thus completing the SELECTION phase. The initiator and the phantom SCSI device can then communicate as a normal initiator and target would during information transfer stages of the SCSI standard.
This method of communication can be used according to the invention between a host computer containing a SCSI controller and a SCSI box, or a box designed for special SCSI cards. In such a SCSI box, the phantom SCSI device that is not assigned a SCSI address would be the circuitry that controls the various indicators on the front of the SCSI box and on each special SCSI card. Thus, the SCSI controller board, which is the initiator in communications with the phantom device, can instruct the phantom device to light certain LEDs (light emitting diodes), such as activity LEDs or need service LEDs. Further, the phantom device can inform the SCSI controller what devices are present in the SCSI box, where they are located, and any other information desired by the host computer.
This can all be done without the phantom device occupying a normal SCSI address. This leaves all of the SCSI addresses to be occupied by the eight SCSI IDs available for occupation by either controller boards or other SCSI devices.